package com.example.tresenrayaandroid;

import java.util.Random;

import android.os.Bundle;
import android.app.Activity;
import android.view.Menu;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.TextView;
import android.widget.Toast;

public class JugadorVsMaquina extends Activity {

	private TextView boton1;
	private TextView boton2;
	private TextView boton3;
	private TextView boton4;
	private TextView boton5;
	private TextView boton6;
	private TextView boton7;
	private TextView boton8;
	private TextView boton9;
	private String casilla1=new String("-1");
    private String casilla2=new String("-1");
    private String casilla3=new String("-1");
    private String casilla4=new String("-1");
    private String casilla5=new String("-1");
    private String casilla6=new String("-1");
    private String casilla7=new String("-1");
    private String casilla8=new String("-1");
    private String casilla9=new String("-1");
    
    
	private TextView botonBorrar;
    private int jugador=0;
    
	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.activity_jugador_vs_maquina);
		
		 boton1= (TextView) findViewById(R.id.botton1);
		 boton2= (TextView) findViewById(R.id.botton2);
		 boton3= (TextView) findViewById(R.id.botton3);
		 boton4= (TextView) findViewById(R.id.botton4);
		 boton5= (TextView) findViewById(R.id.botton5);
		 boton6= (TextView) findViewById(R.id.botton6);
		 boton7= (TextView) findViewById(R.id.botton7);
		 boton8= (TextView) findViewById(R.id.botton8);
		 boton9= (TextView) findViewById(R.id.botton9);
		
	     botonBorrar=(TextView) findViewById(R.id.botonBorrar);
	     
	     boton1.setOnClickListener(new OnClickListener() {
				
				@Override
				public void onClick(View v) {
			        
					if(jugador==0 && v.isClickable()){
			        	casilla1="X";
						boton1.setBackgroundResource(R.drawable.imagen_equis);
			        	v.setClickable(false);
			        	
			        	int fin= comprobarGanador();
			        	
			        	if(fin !=-1)
			        	{
			        		if(fin==0)
			        		{
			        			ganadorJugador1();
			        		}
			        		else if(fin ==2)
			        		{
			        			ganadorEmpate();
			        		}
			        	}
			        	
			        	jugador=1;
			        	juegoMaquina();
					}
					
					else if (jugador==1 && v.isClickable()){
			        	casilla1="0";
			        	boton1.setBackgroundResource(R.drawable.imagen_circulo);
			        	v.setClickable(false);
			        	
			        	int fin= comprobarGanador();
			        	if(fin !=-1)
			        	{
			        		if(fin==1)
			        		{
			        			ganadorMaquina();
			        		}
			        		else if(fin ==2)
			        		{
			        			ganadorEmpate();
			        		}
			        	}
			        	
			        	jugador=0;

			        }
				}
			});
			
			boton2.setOnClickListener(new OnClickListener() {
				
				@Override
				public void onClick(View v) {

					if(jugador==0 && v.isClickable()){
			        	casilla2="X";
						boton2.setBackgroundResource(R.drawable.imagen_equis);
			        	v.setClickable(false);
			        	
			        	int fin= comprobarGanador();
			        	if(fin !=-1)
			        	{
			        		if(fin==0)
			        		{
			        			ganadorJugador1();
			        		}
			        		else if(fin ==2)
			        		{
			        			ganadorEmpate();
			        		}
			        	}
			        	
			        	jugador=1;
			        	juegoMaquina();
					}
					
					else if (jugador==1 && v.isClickable()){
			        	casilla2="0";
			        	boton2.setBackgroundResource(R.drawable.imagen_circulo);
			        	v.setClickable(false);
			        	
			        	int fin= comprobarGanador();
			        	if(fin !=-1)
			        	{
			        		if(fin==1)
			        		{
			        			ganadorMaquina();
			        		}
			        		else if(fin ==2)
			        		{
			        			ganadorEmpate();
			        		}
			        	}
			        	jugador=0;

			        }
					
				}
			});
			
			boton3.setOnClickListener(new OnClickListener() {
				
				@Override
				public void onClick(View v) {

					if(jugador==0 && v.isClickable()){
			        	casilla3="X";
						boton3.setBackgroundResource(R.drawable.imagen_equis);
			        	v.setClickable(false);
			        	
			        	int fin= comprobarGanador();
			        	if(fin !=-1)
			        	{
			        		if(fin==0)
			        		{
			        			ganadorJugador1();
			        		}
			        		else if(fin ==2)
			        		{
			        			ganadorEmpate();
			        		}
			        	}
			        	
			        	jugador=1;
			        	juegoMaquina();
					}
					
					else if (jugador==1 && v.isClickable()){
			        	casilla3="0";
			        	boton3.setBackgroundResource(R.drawable.imagen_circulo);
			        	v.setClickable(false);
			        	
			        	int fin= comprobarGanador();
			        	if(fin !=-1)
			        	{
			        		if(fin==1)
			        		{
			        			ganadorMaquina();
			        		}
			        		else if(fin ==2)
			        		{
			        			ganadorEmpate();
			        		}
			        	}
			        	
			        	jugador=0;

			        }
					
				}
			});
			
			boton4.setOnClickListener(new OnClickListener() {
				
				@Override
				public void onClick(View v) {

					if(jugador==0 && v.isClickable()){
			        	casilla4="X";
						boton4.setBackgroundResource(R.drawable.imagen_equis);
			        	v.setClickable(false);
			        	
			        	int fin= comprobarGanador();
			        	if(fin !=-1)
			        	{
			        		if(fin==0)
			        		{
			        			ganadorJugador1();
			        		}
			        		else if(fin ==2)
			        		{
			        			ganadorEmpate();
			        		}
			        	}
			        	
			        	jugador=1;
			        	juegoMaquina();
					}
					
					else if (jugador==1 && v.isClickable()){
			        	casilla4="0";
			        	boton4.setBackgroundResource(R.drawable.imagen_circulo);
			        	v.setClickable(false);
			        	
			        	int fin= comprobarGanador();
			        	if(fin !=-1)
			        	{
			        		if(fin==1)
			        		{
			        			ganadorMaquina();
			        		}
			        		else if(fin ==2)
			        		{
			        			ganadorEmpate();
			        		}
			        	}
			        	
			        	jugador=0;

			        	
			        }
					
				}
			});
			boton5.setOnClickListener(new OnClickListener() {
				
				@Override
				public void onClick(View v) {

					if(jugador==0 && v.isClickable()){
			        	casilla5="X";
						boton5.setBackgroundResource(R.drawable.imagen_equis);
			        	v.setClickable(false);
			        	
			        	int fin= comprobarGanador();
			        	if(fin !=-1)
			        	{
			        		if(fin==0)
			        		{
			        			ganadorJugador1();
			        		}
			        		else if(fin ==2)
			        		{
			        			ganadorEmpate();
			        		}
			        	}
			        	
			        	jugador=1;
			        	juegoMaquina();
					}
					
					else if (jugador==1 && v.isClickable()){
			        	casilla5="0";
			        	boton5.setBackgroundResource(R.drawable.imagen_circulo);
			        	v.setClickable(false);
			        	
			        	int fin= comprobarGanador();
			        	if(fin !=-1)
			        	{
			        		if(fin==1)
			        		{
			        			ganadorMaquina();
			        		}
			        		else if(fin ==2)
			        		{
			        			ganadorEmpate();
			        		}
			        	}
			        	
			        	jugador=0;

			        	
			        }
					
				}
			});
			
			boton6.setOnClickListener(new OnClickListener() {
				
				@Override
				public void onClick(View v) {

					if(jugador==0 && v.isClickable()){
			        	casilla6="X";
						boton6.setBackgroundResource(R.drawable.imagen_equis);
			        	v.setClickable(false);
			        	
			        	int fin= comprobarGanador();
			        	if(fin !=-1)
			        	{
			        		if(fin==0)
			        		{
			        			ganadorJugador1();
			        		}
			        		else if(fin ==2)
			        		{
			        			ganadorEmpate();
			        		}
			        	}
			        	
			        	jugador=1;
			        	juegoMaquina();
					}
					
					else if (jugador==1 && v.isClickable()){
			        	casilla6="0";
			        	boton6.setBackgroundResource(R.drawable.imagen_circulo);
			        	v.setClickable(false);
			        	
			        	int fin= comprobarGanador();
			        	if(fin !=-1)
			        	{
			        		if(fin==1)
			        		{
			        			ganadorMaquina();
			        		}
			        		else if(fin ==2)
			        		{
			        			ganadorEmpate();
			        		}
			        	}
			        	
			        	jugador=0;

			        	
			        }
					
				}
			});
			
			boton7.setOnClickListener(new OnClickListener() {
				
				@Override
				public void onClick(View v) {

					if(jugador==0 && v.isClickable()){
			        	casilla7="X";
						boton7.setBackgroundResource(R.drawable.imagen_equis);
			        	v.setClickable(false);
			        	
			        	int fin= comprobarGanador();
			        	if(fin !=-1)
			        	{
			        		if(fin==0)
			        		{
			        			ganadorJugador1();
			        		}
			        		else if(fin ==2)
			        		{
			        			ganadorEmpate();
			        		}
			        	}
			        	
			        	jugador=1;
			        	juegoMaquina();
					}
					
					else if (jugador==1 && v.isClickable()){
			        	casilla7="0";
			        	boton7.setBackgroundResource(R.drawable.imagen_circulo);
			        	v.setClickable(false);
			        	
			        	int fin= comprobarGanador();
			        	if(fin !=-1)
			        	{
			        		if(fin==1)
			        		{
			        			ganadorMaquina();
			        		}
			        		else if(fin ==2)
			        		{
			        			ganadorEmpate();
			        		}
			        	}
			        	
			        	jugador=0;

			        	
			        }
					
				}
			});
			
			boton8.setOnClickListener(new OnClickListener() {
				
				@Override
				public void onClick(View v) {

					if(jugador==0 && v.isClickable()){
			        	casilla8="X";
						boton8.setBackgroundResource(R.drawable.imagen_equis);
			        	v.setClickable(false);
			        	
			        	int fin= comprobarGanador();
			        	if(fin !=-1)
			        	{
			        		if(fin==0)
			        		{
			        			ganadorJugador1();
			        		}
			        		else if(fin ==2)
			        		{
			        			ganadorEmpate();
			        		}
			        	}
			        	
			        	jugador=1;
			        	juegoMaquina();
					}
					
					else if (jugador==1 && v.isClickable()){
			        	casilla8="0";
			        	boton8.setBackgroundResource(R.drawable.imagen_circulo);
			        	v.setClickable(false);
			        	
			        	int fin= comprobarGanador();
			        	if(fin !=-1)
			        	{
			        		if(fin==1)
			        		{
			        			ganadorMaquina();
			        		}
			        		else if(fin ==2)
			        		{
			        			ganadorEmpate();
			        		}
			        	}
			        	
			        	jugador=0;

			        	
			        }
					
				}
			});

			boton9.setOnClickListener(new OnClickListener() {
		
				@Override
				public void onClick(View v) {

					if(jugador==0 && v.isClickable()){
			        	casilla9="X";
						boton9.setBackgroundResource(R.drawable.imagen_equis);
			        	v.setClickable(false);
			        	
			        	int fin= comprobarGanador();
			        	if(fin !=-1)
			        	{
			        		if(fin==0)
			        		{
			        			ganadorJugador1();
			        		}
			        		else if(fin ==2)
			        		{
			        			ganadorEmpate();
			        		}
			        	}
			        	
			        	jugador=1;
			        	juegoMaquina();
					}
					
					else if (jugador==1 && v.isClickable()){
			        	casilla9="0";
			        	boton9.setBackgroundResource(R.drawable.imagen_circulo);
			        	v.setClickable(false);
			        	
			        	int fin= comprobarGanador();
			        	if(fin !=-1)
			        	{
			        		if(fin==1)
			        		{
			        			ganadorMaquina();
			        		}
			        		else if(fin ==2)
			        		{
			        			ganadorEmpate();
			        		}
			        	}
			        	
			        	jugador=0;
			        	
			        }
				
				}
			});
			
			botonBorrar.setOnClickListener(new OnClickListener() {
				
				@Override
				public void onClick(View v) {
					
					casilla1="-1";
					boton1.setBackgroundResource(R.drawable.imagen_blanco);
					boton1.setClickable(true);
					
					casilla2="-1";
					boton2.setBackgroundResource(R.drawable.imagen_blanco);
					boton2.setClickable(true);
			        
					casilla3="-1";
					boton3.setBackgroundResource(R.drawable.imagen_blanco);
					boton3.setClickable(true);
			        
			        casilla4="-1";
			        boton4.setBackgroundResource(R.drawable.imagen_blanco);
			        boton4.setClickable(true);
			        
			        casilla5="-1";
			        boton5.setBackgroundResource(R.drawable.imagen_blanco);
			        boton5.setClickable(true);
			        
			        casilla6="-1";
			        boton6.setBackgroundResource(R.drawable.imagen_blanco);
			        boton6.setClickable(true);
			        
			        casilla7="-1";
			        boton7.setBackgroundResource(R.drawable.imagen_blanco);
			        boton7.setClickable(true);
			        
			        casilla8="-1";
			        boton8.setBackgroundResource(R.drawable.imagen_blanco);
			        boton8.setClickable(true);
			        
			        casilla9="-1";
			        boton9.setBackgroundResource(R.drawable.imagen_blanco);
			        boton9.setClickable(true);
			        
			        jugador=0;
					
				}
			});
	}

	@Override
	public boolean onCreateOptionsMenu(Menu menu) {
		// Inflate the menu; this adds items to the action bar if it is present.
		getMenuInflater().inflate(R.menu.jugador_vs_maquina, menu);
		return true;
	}
	
	public int comprobarGanador(){
		

		
		//diagonales
		if(!this.boton1.isClickable() && !this.boton5.isClickable()  && !this.boton9.isClickable() 
                        && this.casilla1.equals(this.casilla5) && this.casilla1.equals(this.casilla9)){
			this.fin();
			return jugador;
		}
		if(!this.boton3.isClickable() && !this.boton5.isClickable()  && !this.boton7.isClickable() 
                && this.casilla3.equals(this.casilla5)&& this.casilla3.equals(this.casilla7)){
			
			this.fin();
			return jugador;
		}
		

		//horizontales
		if(!this.boton1.isClickable() && !this.boton2.isClickable()  && !this.boton3.isClickable() 
                && this.casilla1.equals(this.casilla2) && this.casilla1.equals(this.casilla3)){
			
			this.fin();
			return jugador;
		}
		
		if(!this.boton4.isClickable() && !this.boton5.isClickable()  && !this.boton6.isClickable() 
				&& this.casilla4.equals(this.casilla5) && this.casilla4.equals(this.casilla6)){
	
			this.fin();
			return jugador;
		}
		
		if(!this.boton7.isClickable() && !this.boton8.isClickable()  && !this.boton9.isClickable() 
				&& this.casilla7.equals(this.casilla8) && this.casilla7.equals(this.casilla9)){
	
			this.fin();
			return jugador;
		}
		

		//verticales
		if(!this.boton1.isClickable() && !this.boton4.isClickable()  && !this.boton7.isClickable() 
				&& this.casilla1.equals(this.casilla4) && this.casilla1.equals(this.casilla7)){
	
			this.fin();
			return jugador;
		}
		
		if(!this.boton2.isClickable() && !this.boton5.isClickable()  && !this.boton8.isClickable() 
				&& this.casilla2.equals(this.casilla5) && this.casilla2.equals(this.casilla8)){
	
			this.fin();
			return jugador;
		}
		
		if(!this.boton3.isClickable() && !this.boton6.isClickable()  && !this.boton9.isClickable() 
				&& this.casilla3.equals(this.casilla6) && this.casilla3.equals(this.casilla9)){
	
			this.fin();
			return jugador;
		}
		
		//empate
		if(!this.boton1.isClickable() && !this.boton3.isClickable()  && !this.boton3.isClickable() 
				&& !this.boton4.isClickable() && !this.boton5.isClickable()  && !this.boton6.isClickable() 
				&& !this.boton7.isClickable() && !this.boton8.isClickable()  && !this.boton9.isClickable() ){
	
			this.fin();
			return 2;
		}
		
		return -1;
		
	}
	
	public void fin()
	{
		
		
		this.boton1.setClickable(false);
        
        this.boton2.setClickable(false);
        
        this.boton3.setClickable(false);
        
        this.boton4.setClickable(false);
        
        this.boton5.setClickable(false);
        
        this.boton6.setClickable(false);
        
        this.boton7.setClickable(false);
        
        this.boton8.setClickable(false);
        
        this.boton9.setClickable(false);
        
	}
	
	public void ganadorJugador1()
	{
		Toast.makeText(this,"gana jugador 1",Toast.LENGTH_SHORT).
		show();
		
	}
	
	public void ganadorMaquina()
	{
		Toast.makeText(this,"gana maquina",Toast.LENGTH_SHORT).
		show();
		
	}
	
	public void ganadorEmpate()
	{
		Toast.makeText(this,"empate",Toast.LENGTH_SHORT).
		show();
		
	}
	
	public void juegoMaquina(){
		
		Random rand = new Random();
		int casilla= rand.nextInt(9);
		
		
			if(casilla==1)
			{
				boton1.setBackgroundResource(R.drawable.imagen_circulo);
				boton1.setClickable(false);
			}
			else if(casilla==2)
			{
				boton2.setBackgroundResource(R.drawable.imagen_circulo);
				boton2.setClickable(false);
			}
			else if(casilla==3)
			{
				boton3.setBackgroundResource(R.drawable.imagen_circulo);
				boton3.setClickable(false);
			}
			else if(casilla==4)
			{
				boton4.setBackgroundResource(R.drawable.imagen_circulo);
				boton4.setClickable(false);
			}
			else if(casilla==5)
			{
				boton5.setBackgroundResource(R.drawable.imagen_circulo);
				boton5.setClickable(false);
			}
			else if(casilla==6)
			{
				boton6.setBackgroundResource(R.drawable.imagen_circulo);
				boton6.setClickable(false);
			}
			else if(casilla==7)
			{
				boton7.setBackgroundResource(R.drawable.imagen_circulo);
				boton7.setClickable(false);
				
			}
			else if(casilla==8)
			{
				boton8.setBackgroundResource(R.drawable.imagen_circulo);
				boton8.setClickable(false);
			}
			else if(casilla==9)
			{
				boton9.setBackgroundResource(R.drawable.imagen_circulo);
				boton9.setClickable(false);
			}
		
		
			
		
		   
	   }
	

}
